<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div >
        <div id="app">
            <h1>我是当前的页面 </h1>
            
             <child @signal='fn3' msg='abc字符串'></child>
        
        </div>
 
    </div>
    <!-- 开发环境版本，包含了有帮助的命令行警告 -->
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
    <script>
           // 先定义一个外来的组件 不支持import
        // 局部组件 
        // 子组件 或者说 幕后工作的组件 
        var child = {
            props: ['msg'],
            data: function () {
                return {
                    a: '小米官网顶部'
                }
            },
            methods:{
                fn2() {
                    console.log('fn2')
                    // vue提供了一个$emit发射器 信号发射器 事件触发器
                    // 子父组件传值要用到全局提供的信号发射器 
                    this.$emit('signal','我被打了')
                }
            },
            beforeMount() { },
            created() { },
            mounted() { },
            beforeUpdate() { },
            updated() { },
            beforeDestroy() { },
            destroyed() { },
            template: `
            <div>
                <h1>我是child子组件 {{msg}} </h1>
                <button @click='fn2'>子组件按钮 发射信号</button>
            </div>
            `
        }
   
        var vm = new Vue({
            // 监管的容器 
            el:'#app',
            components:{child},
            // 数据定义
            data:{
                msg:'helloworld',
                msg2:'你好世界'
            },
            methods:{
                fn3(e) {
                    console.log('接收到子组件的信息了')
                    console.log(e)
                }
            }
        })
     
        console.log('vm',vm)

      

    </script>
</body>

</html>